package io.decorated.char_.transformation;

import javax.net.ssl.SSLContext;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * 作用：将字节流转为字符流
 * 主要用于处理文本数据，使得可以将字节流转换为字符流，或者反过来。这在处理需要特定字符编码的文本数据时尤其有用
 *
 * 不过这是JDK11以前的方案
 * 因为之前的 FileReader 和 FileWriter 还是不能指定编码的，因此我们只能使用转换流做。
 */
public class InputStreamReader_ {
    public static void main(String[] args) {
        //问题:将字节流 FileInputStream 转为字符流InputStreamReader 并指定编码gbk
        String filePath = "";
        InputStreamReader isr = null;
        try {
            //1.将FileInputStream转为InputStreamReader 2.指定编码
            isr = new InputStreamReader(new FileInputStream(filePath), "gbk");
            //3.把InputStreamReader 传入 BufferedReader
            BufferedReader br = new BufferedReader(isr);

            String str = br.readLine();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                isr.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}
